Conventional display systems typically include a wired connection between a display source (e.g, computer, DVD/Blu-ray device, cell phone, set-top box, etc.) and a display sink (e.g., a device that receives data for producing an image such as but not limited to a computer monitor, television, projector, hub, etc.) for communicating multimedia data and other display controls and capability data. Wired communication links or interfaces between the display source and the display sink may include video graphics array (VGA), digital video interface (DVI), high definition multimedia interface (HDMI), DisplayPort (DP), and other wired communication interfaces. The communication interface may include an Inter-Integrated Circuit (I2C) bus for communicating monitor control commands and monitor capability information between the display source and the display sink. The I2C bus is a multi-wire (typically including a data wire and a clock wire), bidirectional communication bus that provides for serial communication between connected components.
Referring to FIG. 1, an exemplary known display system 10 is illustrated that utilizes an I2C bus for communicating monitor control commands and monitor capability data. Display system 10 includes a display source 12, such as a computer (e.g., laptop, desktop, tablet, etc.), cell phone, DVD/Blueray device, set-top box, etc., that is operative to provide audio/video data or other multi-media data to a display sink 14 for display on a monitor 16 (e.g., display, screen, etc.) of display sink 14. Display sink 14 may include a computer monitor device, a television, a video/image projector, or any other suitable display sink 14 operative to display image data (e.g., video, graphics, etc.) and/or to convert audio data into sound. The connections lines between components of display system 10 illustrated in FIG. 1 represent physical electrical connections (e.g., conductors, wires) between the components.
Display source 12 includes an image provider 18 that is operative to generate or decode audio and image (video or graphics) data. Image provider 18 may include a graphics processor (e.g. one or more GPU cores), decoder, or other control unit operative to generate or decode multimedia data, such as audio, video, and other image data. In some embodiments, image provider 18 further includes a main processor (e.g., one or more CPU cores) that includes an operating system operative to issue control commands to display sink 14 and to request data from display sink 14. In one embodiment, a graphics processor and a main or central processor are provided in an integrated circuit of image provider 18, although processors and logic components of image provider 18 may comprise separate devices. Display source 12 includes a memory 20, internal or external to image provider 18, containing data, such as image or control data, accessible by image provider 18. Memory 20 may include software or firmware with program instructions that when executed by a processor of image provider 18 performs one or more computing tasks. Memory 20 may also include image data used by image provider 18 to provide video or graphics data.
Display sink 14 illustratively includes a monitor controller 26 operatively coupled to monitor 16 and to a memory 28. Monitor controller 26, which may include a processor or other suitable logic that is operative to process multimedia data, such as audio data and video and/or graphics image data, received from image provider 18 of display source 12 and to provide the processed data to monitor 16 for display on monitor 16. As described herein, monitor controller 26 is also operative to control monitor 16 based on control commands received from display source 12 and to provide monitor capability data to display source 12. Memory 28 may be internal or external to monitor controller 26 and stores data, such as image or control data, accessible by monitor controller 26 for controlling monitor 16. Memory 20 may further include software or firmware with program instructions that when executed by a processor of monitor controller 26 performs one or more computing tasks associated with monitor 16. Memory may be any suitable memory including but not limited to RAM, ROM, EEPROM, DDRAM, optical memory, distributed memory in differing devices such as web servers or any suitable non-transitory memory.
A display interface 22 of display source 12 provides a communication interface between image provider 18 of display source 12 and display sink 14. Similarly, a display interface 24 of display sink 14 provides a communication interface between monitor controller 18 of display sink 14 and display source 12. Display interfaces 22, 24 may include a video graphics array (VGA), digital video interface (DVI), high definition multimedia interface (HDMI), DisplayPort (DP), or other communication interface. A communication cable 30 is coupled from display interface 22 to display interface 24. Communication cable 30 includes a connector cable or wire, or other suitable wired connector, that is compatible with the communication interface (e.g., VGA, DVI, HDMI, DP, etc.) of display interfaces 22, 24. Communication cable 30 illustratively includes an audio/video bus 32 for communicating audio, video, other image data, and various controls from display source 12 to display sink 14. Audio/video bus 32 is illustratively unidirectional from display source 12 to display sink 14. In the illustrated embodiment, communication cable 30 further includes an I2C bus 34 for communicating monitor control commands and monitor capability information between display source 12 and display sink 14. Audio/video bus 32 and I2C bus 34 are illustratively provided in a single communication cable 30. In one embodiment with a DisplayPort interface, communication cable 30 includes a pair of auxiliary (AUX) wires rather than an I2C bus 34 for communicating the monitor control commands and monitor capability information between display interfaces 22, 24.
I2C bus 34 communicates monitor control commands and monitor capability information between display source 12 and display sink 14. Capability information may include extended display identification data (EDID) or other suitable data representing the display capabilities of monitor 16. EDID includes a data structure provided at display sink 14, such as at memory 28 accessible by monitor controller 26, that describes to display source 12 the display and operational capabilities of monitor 16. Exemplary capability data includes graphics modes, frame rate, display size and aspect ratio, resolution, color capabilities, and other suitable monitor capability information. Image provider 18 performs multiple functions or operations based on the EDID structure. Upon reading the EDID structure, image provider 18 is configured to identify the type and capabilities of monitor 16 and to tailor the audio/video data (or other image data) to conform to the capabilities of the monitor 16. For example, image provider 18 may scale the video or image content provided to display sink 14 based on whether monitor 16 has enabled overscan functionality, as determined from the display capability information in the EDID structure. In another example, image provider 18 performs color management based on the display gamut and related information of monitor 16 provided in the EDID structure. Other operations may be performed by image provider 18 based on EDID information and other control/capability information.
Monitor control commands communicated over I2C bus 34 may include Monitor Command and Controls Set (MCCS) commands or other suitable monitor control commands provided from display source 12 to display sink 14 for controlling the display properties of monitor 16. Each MCCS command includes various data parameters and command attributes operative to control the display properties of monitor 16. MCCS commands are operative to restore factory defaults (e.g., color, geometry, brightness/contrast, and other presets/defaults) of the monitor 16, to control color temperature, hue, and saturation, to adjust display geometry (e.g., parallelogram, pincushion, etc.), and to control image display parameters. Exemplary image display parameters include display orientation, zoom, brightness, contrast, gamma, focus, backlight control, white point, and other image parameters. The I2C bus 34 may be used to transfer other display setup information. In one embodiment, monitor display sink 14 provides reply data or controls over I2C bus 34 to display source 12 in response to monitor control commands.
In one embodiment, the I2C bus 34 utilizes Display Data Channel and/or Command Interface (DDC/CI) communication protocol to communicate EDID information, MCCS commands, and other data or monitor control commands between display source 12 and display sink 14. DDC/CI protocol may provide a “plug and play” environment such that display source 12 and display sink 14 are able to communicate upon connection to the I2C bus 34.
Monitor controller 26 controls monitor 16 based on the monitor control commands from display source 12. For example, upon image provider 18 issuing an MCCS command or other monitor control command to display sink 14 via the IC2 bus 34, the monitor controller 26 displays the video or other image data, or processes audio data, in accordance with the issued commands. Similarly, upon image provider 18 issuing an EDID request via the IC2 bus 34, monitor controller 26 provides the EDID information of monitor 16 to display source 12 via the I2C bus 34.
The I2C bus 34 is configured to communicate low-level messaging transactions (e.g., single byte messages) between image provider 18 of display source 12 and monitor controller 26 of display sink 14. These low-level messages may include read or write commands, such as read/write replies and requests. In one embodiment, I2C bus 34 includes two wires, i.e., a data wire and a clock wire, that provides for serial communication between display source 12 and display sink 14. For example, in one embodiment, information from the EDID structure, MCCS commands, and other display data or monitor control commands are transmitted over I2C bus 34 a single byte at a time. As such, a monitor control command, for example, may include a plurality of low level (e.g., single byte) messaging transaction requests. Another suitable multi-wired, bidirectional communication bus may be provided as an alternative to I2C bus 34 for handling the communication of low-level messaging transactions containing monitor control and capability information.
Some display systems 10 are operative to provide audio/video data to the display sink 14 over a computer networking protocol, such as an internet protocol (IP) format including Transmission Control Protocol/Internet Protocol (TCP/IP) or User Datagram Protocol (UDP), for example. Rather than being directly connected with a communication interface 30 such as VGA, DVI, HDMI, DP, or other wired interface, the display source 12 and display sink 14 are connected via an IP link to remotely communicate with each other over a wired or wireless IP network. However, such IP communication links do not support the communication of I2C read/write messaging transactions (e.g., MCCS commands, DDC/IC protocol, EDID information, etc.) between the display source 12 and the display sink 14. Without a mechanism to enable the communication of remote I2C read/write messaging transactions over an IP interface, some or all operations performed by the image provider 18 based on the monitor control commands and capability data previously communicated via I2C bus 34 may be either compromised or performed at the display sink 14. However, performance of such operations by the display sink 14 results in increased complexity of the display sink 14 and increased likelihood of compatibility issues between the display source 12 and the display sink 14. Further, the processor(s) and/or control logic of the image provider 18 of display source 12 is typically much more flexible in operation and is better adapted to handle changes in the monitor control/capabilities.
Therefore, a need exists for methods and systems to communicate monitor control commands and other monitor data between a display source and a display sink using a network protocol communication interface, such as an internet protocol (IP) communication interface.